package dlwntk6545.swing;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JLabel;
import javax.swing.Timer;

public class SwingStatusBar extends JLabel{
	
	public SwingStatusBar(){
		
		setHorizontalAlignment(JLabel.RIGHT);
		setText(getSysdate());
		

		//1초 마다 발생하는 이벤트를 처리할 리스너
		class TimerListener implements ActionListener {

			@Override
			public void actionPerformed(ActionEvent e) {
				
				setText(getSysdate());
				
			}
			//TimerListener
		}
		TimerListener updater = new TimerListener();
		//리스너 클래스에 대한 객체를 생성
		Timer timer = new Timer(1000, updater);
		//1초 간격으로 이벤트를 생성하고, 그것을 updater 라는 리스너가 처리함
		timer.start();
		
		/*이렇게 하면 메모리 부족 현상이 올 수 있음
		Timer timer = new Timer(1000, new TimerListener());
		timer.start();
		*/
		
		
	}
	
	public static String getSysdate(){
		
		String fmt = "YYYY년 MM월 dd일 E요일 a hh:mm:ss";	//a 는 오전/오후 를 나타냄
		Date sysdate = new Date();
		return new SimpleDateFormat(fmt).format(sysdate);
		
	}

}
